﻿using aop_cache_Data;
using aop_cache_Entity;
using Project.Unity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using Domain.Core;
using aop_cache_Entity.DTO;
namespace aop_cache_WebService
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码、svc 和配置文件中的类名“Service1”。
    // 注意: 为了启动 WCF 测试客户端以测试此服务，请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs，然后开始调试。
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
        //    IClassroom_InfoRepository _iClassroom_InfoRepository = new Classroom_InfoRepository();//不走缓存

        IWebManageUsersRepository _iWebManageUsersRepository = ServiceLocator.Instance.GetService<IWebManageUsersRepository>();//必须通过输入注入才能实现
        public void InsertWebManageUsers(WebManageUsersDTO entity)
        {
            _iWebManageUsersRepository.InsertWebManageUsersData(entity.MapTo<WebManageUsers>());
        }

        public List<WebManageUsersDTO> GetWebManageUsers()
        {
            var linq = _iWebManageUsersRepository.GetWebManageUsersData().Select(i => new WebManageUsersDTO
            {
                ManageUserID = i.ManageUserID,
                LoginName = i.LoginName,
                CreateDate = i.CreateDate,
                Description = i.Description,
                Email = i.Email,
            }).ToList();
            return linq;
        }

        public WebManageUsersDTO GetWebManageUsersByID(int id)
        {
            return _iWebManageUsersRepository.GetWebManageUsersEntity(id).MapTo<WebManageUsersDTO>();
        }

        public void UpdateWebManageUsers(WebManageUsersDTO entity)
        {
            _iWebManageUsersRepository.UpdateWebManageUsers(entity.MapTo<WebManageUsers>());
        }

    }
}
